struct node { struct node *right; struct node *left;
};
void postorder_traverse( struct node *p ) { extern void process(struct node *);
if (p->left)
#pragma omp task // p is firstprivate by default
postorder_traverse(p->left);
if (p->right) #pragma omp task // p is firstprivate by default
#pragma omp taskwait postorder_traverse(p->right);
process(p);
}
